home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 8 / Revista CD Expert nº 08 CD1.iso / Utilitarios / Programacao / Bloodshed Dev-C++ 2.0 / _SETUP.1 / Base.h < prev    next >
C/C++ Source or Header  |  1997-06-16  |  18KB  |  568 lines

  1. /* 
  2.    Base.h
  3.  
  4.    Base definitions
  5.  
  6.    Copyright (C) 1996 Free Software Foundation, Inc.
  7.  
  8.    Author: Scott Christley <scottc@net-community.com>
  9.  
  10.    This file is part of the Windows32 API Library.
  11.  
  12.    This library is free software; you can redistribute it and/or
  13.    modify it under the terms of the GNU Library General Public
  14.    License as published by the Free Software Foundation; either
  15.    version 2 of the License, or (at your option) any later version.
  16.    
  17.    This library is distributed in the hope that it will be useful,
  18.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  19.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  20.    Library General Public License for more details.
  21.  
  22.    If you are interested in a warranty or support for this source code,
  23.    contact Scott Christley <scottc@net-community.com> for more information.
  24.    
  25.    You should have received a copy of the GNU Library General Public
  26.    License along with this library; see the file COPYING.LIB.
  27.    If not, write to the Free Software Foundation, 
  28.    59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  29. */ 
  30.  
  31. #ifndef _GNU_H_WINDOWS32_BASE
  32. #define _GNU_H_WINDOWS32_BASE
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif /* __cplusplus */
  37.  
  38. #ifndef NULL
  39. #define NULL  ((void *)0)
  40. #endif /* !NULL */
  41.  
  42. #define FALSE 0
  43. #define TRUE 1
  44.  
  45. /* typedef ACMDRIVERENUMCB;
  46. typedef ACMDRIVERPROC;
  47. typedef ACMFILERCHOOSEHOOKPROC;
  48. typedef ACMFILTERENUMCB;
  49. typedef ACMFILTERTAGENUMCB;
  50. typedef ACMFORMATCHOOSEHOOKPROC;
  51. typedef ACMFORMATENUMCB;
  52. typedef ACMFORMATTAGENUMCB;
  53. typedef APPLET_PROC;
  54. */
  55. typedef unsigned short ATOM;
  56. /* Changed from BOOL to WINBOOL to avoid Objective-C conflict */
  57. typedef int WINBOOL;
  58. typedef unsigned char BOOLEAN;
  59. typedef unsigned char BYTE;
  60. typedef unsigned long CALTYPE;
  61. typedef unsigned long CALID;
  62. typedef char CCHAR;
  63. typedef char CHAR;
  64. typedef unsigned long COLORREF;
  65. #define CONST const
  66. /*
  67. typedef CTRYID;
  68. typedef DLGPROC;
  69. */
  70. typedef unsigned int DWORD; /* was unsigned long */
  71. typedef double DWORDLONG, *PDWORDLONG;
  72. /*
  73. typedef EDITWORDBREAKPROC;
  74. typedef ENHMFENUMPROC;
  75. typedef ENUMRESLANGPROC;
  76. typedef ENUMRESNAMEPROC;
  77. typedef ENUMRESTYPEPROC;
  78. */
  79. typedef float FLOAT;
  80. /* typedef GLOBALHANDLE; */
  81. typedef void *HANDLE;
  82. typedef HANDLE HACCEL;
  83. typedef HANDLE HBITMAP;
  84. typedef HANDLE HBRUSH;
  85. typedef HANDLE HCOLORSPACE;
  86. typedef HANDLE HCONV;
  87. typedef HANDLE HCONVLIST;
  88. typedef HANDLE HCURSOR;
  89. typedef HANDLE HDBC;
  90. typedef HANDLE HDC;
  91. typedef HANDLE HDDEDATA;
  92. typedef HANDLE HDESK;
  93. typedef HANDLE HDROP;
  94. typedef HANDLE HDWP;
  95. typedef HANDLE HENHMETAFILE;
  96. typedef HANDLE HENV;
  97. typedef int HFILE;
  98. typedef HANDLE HFONT;
  99. typedef HANDLE HGDIOBJ;
  100. typedef HANDLE HGLOBAL;
  101. typedef HANDLE HGLRC;
  102. typedef HANDLE HHOOK;
  103. typedef HANDLE HICON;
  104. typedef HANDLE HIMAGELIST;
  105. typedef HANDLE HINSTANCE;
  106. typedef HANDLE HKEY, *PHKEY;
  107. typedef HANDLE HKL;
  108. typedef HANDLE HLOCAL;
  109. typedef HANDLE HMENU;
  110. typedef HANDLE HMETAFILE;
  111. typedef HANDLE HMODULE;
  112. typedef HANDLE HPALETTE;
  113. typedef HANDLE HPEN;
  114. typedef HANDLE HRASCONN;
  115. typedef long HRESULT;
  116. typedef HANDLE HRGN;
  117. typedef HANDLE HRSRC;
  118. typedef HANDLE HSTMT;
  119. typedef HANDLE HSZ;
  120. typedef HANDLE HWINSTA;
  121. typedef HANDLE HWND;
  122. typedef int INT;
  123. typedef unsigned short LANGID;
  124. typedef DWORD LCID;
  125. typedef DWORD LCTYPE;
  126. /* typedef LOCALHANDLE */
  127. typedef long LONG;
  128. typedef double LONGLONG, *PLONGLONG;
  129. typedef unsigned short *LP;
  130. typedef long LPARAM;
  131. typedef WINBOOL *LPBOOL;
  132. typedef BYTE *LPBYTE;
  133. typedef CONST CHAR *LPCCH;
  134. typedef CHAR *LPCH;
  135. typedef COLORREF *LPCOLORREF;
  136. typedef const char *LPCSTR;
  137.  
  138. #ifdef UNICODE
  139. typedef const unsigned short *LPCTSTR;
  140. #else
  141. typedef const char *LPCTSTR;
  142. #endif /* UNICODE */
  143.  
  144. typedef const unsigned short *LPCWCH;
  145. typedef const unsigned short *LPCWSTR;
  146. typedef DWORD *LPDWORD;
  147. /* typedef LPFRHOOKPROC; */
  148. typedef HANDLE *LPHANDLE;
  149. /* typedef LPHANDLER_FUNCTION; */
  150. typedef int *LPINT;
  151. typedef long *LPLONG;
  152. typedef char *LPSTR;
  153.  
  154. #ifdef UNICODE
  155. typedef unsigned short *LPTCH;
  156. typedef unsigned short *LPTSTR;
  157. #else
  158. typedef char *LPTCH;
  159. typedef char *LPTSTR;
  160. #endif /* UNICODE */
  161.  
  162. typedef long LRESULT;
  163. typedef void *LPVOID;
  164. typedef const void *LPCVOID;
  165. typedef unsigned short *LPWCH;
  166. typedef unsigned short *LPWORD;
  167. typedef unsigned short *LPWSTR;
  168. /* typedef NPSTR; */
  169. typedef unsigned short *NWPSTR;
  170. typedef WINBOOL *PWINBOOL;
  171. typedef BYTE *PBOOLEAN;
  172. typedef BYTE *PBYTE;
  173. typedef const CHAR *PCCH;
  174. typedef CHAR *PCH;
  175. typedef CHAR *PCHAR;
  176. typedef const char *PCSTR;
  177. typedef const unsigned short *PCWCH;
  178. typedef const unsigned short *PCWSTR;
  179. typedef DWORD *PDWORD;
  180. typedef float *PFLOAT;
  181. typedef HANDLE *PHANDLE;
  182. /* typedef PHKEY; */
  183. typedef int *PINT;
  184. /* typedef LCID *PLCID; */
  185. typedef long *PLONG;
  186. typedef short *PSHORT;
  187. /* typedef PSID; */
  188. typedef char *PSTR;
  189. typedef char *PSZ;
  190.  
  191. #ifdef UNICODE
  192. typedef unsigned short *PTBYTE;
  193. typedef unsigned short *PTCH;
  194. typedef unsigned short *PTCHAR;
  195. typedef unsigned short *PTSTR;
  196. #else
  197. typedef unsigned char *PTBYTE;
  198. typedef char *PTCH;
  199. typedef char *PTCHAR;
  200. typedef char *PTSTR;
  201. #endif /* UNICODE */
  202.  
  203. typedef unsigned char *PUCHAR;
  204. typedef unsigned int *PUINT;
  205. typedef unsigned long *PULONG;
  206. typedef unsigned short *PUSHORT;
  207. typedef void *PVOID;
  208. typedef unsigned short *PWCH;
  209. typedef unsigned short *PWCHAR;
  210. typedef unsigned short *PWORD;
  211. /*
  212. typedef PWSTR;
  213. typedef REGSAM;
  214. */
  215.  
  216. typedef short RETCODE;
  217.  
  218. typedef HANDLE SC_HANDLE;
  219. typedef LPVOID  SC_LOCK;
  220. typedef SC_HANDLE *LPSC_HANDLE;
  221. typedef DWORD SERVICE_STATUS_HANDLE;
  222. typedef short SHORT;
  223. /* typedef SPHANDLE; */
  224.  
  225. #ifdef UNICODE
  226. typedef unsigned short TBYTE;
  227. typedef unsigned short TCHAR;
  228. typedef unsigned short BCHAR;
  229. #else
  230. typedef unsigned char TBYTE;
  231. typedef char TCHAR;
  232. typedef BYTE BCHAR;
  233. #endif /* UNICODE */
  234.  
  235. typedef unsigned char UCHAR;
  236. typedef unsigned int UINT;
  237. typedef unsigned long ULONG;
  238. typedef unsigned short USHORT;
  239. #define VOID void
  240. typedef unsigned short WCHAR;
  241. typedef unsigned short WORD;
  242. typedef unsigned int WPARAM;
  243. /* typedef YIELDPROC; */
  244.  
  245. /* Only use __stdcall under WIN32 compiler */
  246. #ifdef i386
  247. #define STDCALL     __attribute__ ((stdcall))
  248. #define CDECL       __cdecl
  249. #define CALLBACK    WINAPI
  250. #define PASCAL      WINAPI
  251. #else
  252. #define STDCALL
  253. #define CDECL
  254. #define CALLBACK
  255. #define PASCAL
  256. #endif
  257. #define WINAPI      STDCALL
  258. #define APIENTRY    STDCALL
  259. #define WINGDIAPI
  260.  
  261. #define _export
  262.  
  263. /*
  264.   Enumerations
  265. */
  266. typedef enum _ACL_INFORMATION_CLASS {
  267.   AclRevisionInformation = 1,   
  268.   AclSizeInformation            
  269. } ACL_INFORMATION_CLASS; 
  270.  
  271. typedef enum _MEDIA_TYPE { 
  272.   Unknown,                
  273.   F5_1Pt2_512,            
  274.   F3_1Pt44_512,           
  275.   F3_2Pt88_512,           
  276.   F3_20Pt8_512,           
  277.   F3_720_512,             
  278.   F5_360_512,             
  279.   F5_320_512,             
  280.   F5_320_1024,            
  281.   F5_180_512,             
  282.   F5_160_512,             
  283.   RemovableMedia,         
  284.   FixedMedia              
  285. } MEDIA_TYPE; 
  286.  
  287. #define RASCS_DONE 0x2000
  288. #define RASCS_PAUSED 0x1000
  289. typedef enum _RASCONNSTATE { 
  290.     RASCS_OpenPort = 0, 
  291.     RASCS_PortOpened, 
  292.     RASCS_ConnectDevice, 
  293.     RASCS_DeviceConnected, 
  294.     RASCS_AllDevicesConnected, 
  295.     RASCS_Authenticate, 
  296.     RASCS_AuthNotify, 
  297.     RASCS_AuthRetry, 
  298.     RASCS_AuthCallback, 
  299.     RASCS_AuthChangePassword, 
  300.     RASCS_AuthProject, 
  301.     RASCS_AuthLinkSpeed, 
  302.     RASCS_AuthAck, 
  303.     RASCS_ReAuthenticate, 
  304.     RASCS_Authenticated, 
  305.     RASCS_PrepareForCallback, 
  306.     RASCS_WaitForModemReset, 
  307.     RASCS_WaitForCallback,
  308.     RASCS_Projected, 
  309.  
  310.     RASCS_StartAuthentication,  
  311.     RASCS_CallbackComplete,     
  312.     RASCS_LogonNetwork,         
  313.  
  314.     RASCS_Interactive = RASCS_PAUSED, 
  315.     RASCS_RetryAuthentication, 
  316.     RASCS_CallbackSetByCaller, 
  317.     RASCS_PasswordExpired, 
  318.  
  319.     RASCS_Connected = RASCS_DONE, 
  320.     RASCS_Disconnected 
  321. } RASCONNSTATE ; 
  322.  
  323. typedef enum _RASPROJECTION {  
  324.     RASP_Amb = 0x10000, 
  325.     RASP_PppNbf = 0x803F, 
  326.     RASP_PppIpx = 0x802B, 
  327.     RASP_PppIp = 0x8021 
  328. } RASPROJECTION ; 
  329.  
  330. typedef enum _SECURITY_IMPERSONATION_LEVEL {
  331.     SecurityAnonymous, 
  332.     SecurityIdentification, 
  333.     SecurityImpersonation, 
  334.     SecurityDelegation 
  335. } SECURITY_IMPERSONATION_LEVEL; 
  336.  
  337. typedef enum _SID_NAME_USE { 
  338.     SidTypeUser = 1, 
  339.     SidTypeGroup, 
  340.     SidTypeDomain, 
  341.     SidTypeAlias, 
  342.     SidTypeWellKnownGroup, 
  343.     SidTypeDeletedAccount, 
  344.     SidTypeInvalid, 
  345.     SidTypeUnknown 
  346. } SID_NAME_USE, *PSID_NAME_USE; 
  347.  
  348. typedef enum _TOKEN_INFORMATION_CLASS {
  349.     TokenUser = 1, 
  350.     TokenGroups, 
  351.     TokenPrivileges, 
  352.     TokenOwner, 
  353.     TokenPrimaryGroup, 
  354.     TokenDefaultDacl, 
  355.     TokenSource, 
  356.     TokenType, 
  357.     TokenImpersonationLevel, 
  358.     TokenStatistics 
  359. } TOKEN_INFORMATION_CLASS; 
  360.  
  361. typedef enum tagTOKEN_TYPE {
  362.     TokenPrimary = 1, 
  363.     TokenImpersonation 
  364. } TOKEN_TYPE; 
  365.  
  366. /*
  367.   Macros
  368. */
  369. #define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) \
  370.     (void)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(id), \
  371.     (LPARAM)(NMHDR FAR*)(pnmhdr)) 
  372.  
  373. #define GetBValue(rgb)   ((BYTE) ((rgb) >> 16)) 
  374. #define GetGValue(rgb)   ((BYTE) (((WORD) (rgb)) >> 8)) 
  375. #define GetRValue(rgb)   ((BYTE) (rgb)) 
  376. #define RGB(r, g ,b)  ((DWORD) (((BYTE) (r) | \
  377.     ((WORD) (g) << 8)) | \
  378.     (((DWORD) (BYTE) (b)) << 16))) 
  379.  
  380. #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \
  381.     (fn)((hwnd), (int)(wParam), (NMHDR FAR*)(lParam)) 
  382.  
  383. #define HIBYTE(w)   ((BYTE) (((WORD) (w) >> 8) & 0xFF)) 
  384. #define HIWORD(l)   ((WORD) (((DWORD) (l) >> 16) & 0xFFFF)) 
  385. #define LOBYTE(w)   ((BYTE) (w)) 
  386. #define LOWORD(l)   ((WORD) (l)) 
  387. #define MAKELONG(a, b) \
  388.     ((LONG) (((WORD) (a)) | ((DWORD) ((WORD) (b))) << 16)) 
  389. #define MAKEWORD(a, b) \
  390.     ((WORD) (((BYTE) (a)) | ((WORD) ((BYTE) (b))) << 8)) 
  391.  
  392. /* original Cygnus headers also had the following defined: */
  393. #define SEXT_HIWORD(l)     ((((int)l) >> 16))
  394. #define ZEXT_HIWORD(l)     ((((unsigned int)l) >> 16))
  395. #define SEXT_LOWORD(l)     ((int)(short)l)
  396.  
  397. #define INDEXTOOVERLAYMASK(i) ((i) << 8) 
  398. #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12) 
  399.  
  400. #define MAKEINTATOM(i)   (LPTSTR) ((DWORD) ((WORD) (i))) 
  401. #define MAKEINTRESOURCE(i)  (LPTSTR) ((DWORD) ((WORD) (i)))
  402.  
  403. #define MAKELANGID(p, s) ((((WORD) (s)) << 10) | (WORD) (p)) 
  404. #define PRIMARYLANGID(lgid)    ((WORD  )(lgid) & 0x3ff) 
  405. #define SUBLANGID(lgid)        ((WORD  )(lgid) >> 10) 
  406.  
  407. #define LANGIDFROMLCID(lcid)   ((WORD) (lcid)) 
  408. #define SORTIDFROMLCID(lcid) \
  409.           ((WORD  )((((DWORD)(lcid)) & 0x000FFFFF) >> 16)) 
  410. #define MAKELCID(lgid, srtid)  \
  411.     ((DWORD)((((DWORD)((WORD)(srtid))) << 16) |  \
  412.             ((DWORD)((WORD)(lgid))))) 
  413. #define MAKELPARAM(l, h)   ((LPARAM) MAKELONG(l, h)) 
  414. #define MAKELRESULT(l, h)   ((LRESULT) MAKELONG(l, h)) 
  415. #define MAKEPOINTS(l)   (*((POINTS FAR *) & (l))) 
  416. #define MAKEROP4(fore,back) \
  417.           (DWORD)((((back) << 8) & 0xFF000000) | (fore)) 
  418. #define MAKEWPARAM(l, h)   ((WPARAM) MAKELONG(l, h)) 
  419.  
  420. #ifndef max
  421. #define max(a, b)  (((a) > (b)) ? (a) : (b)) 
  422. #endif
  423.  
  424. #ifndef min
  425. #define min(a, b)  (((a) < (b)) ? (a) : (b)) 
  426. #endif
  427.  
  428. #define PALETTEINDEX(i) \
  429.     ((COLORREF) (0x01000000 | (DWORD) (WORD) (i))) 
  430. #define PALETTERGB(r, g, b)  (0x02000000 | RGB(r, g, b)) 
  431. #define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); \
  432.       (pt).y = (SHORT) HIWORD(pts);} 
  433. #define POINTTOPOINTS(pt) \
  434.     (MAKELONG((short) ((pt).x), (short) ((pt).y))) 
  435.  
  436. #define INDEXTOOVERLAYMASK(i) ((i) << 8)  
  437. #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)  
  438.  
  439. #ifdef UNICODE
  440. #define TEXT(quote) L##quote 
  441. #else
  442. #define TEXT(quote) quote
  443. #endif
  444.  
  445. /*
  446.    Definitions for callback procedures
  447. */
  448. typedef int CALLBACK (*BFFCALLBACK) (HWND, UINT, LPARAM, LPARAM);
  449. typedef UINT CALLBACK (*LPCCHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  450. typedef UINT CALLBACK (*LPCFHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  451. typedef DWORD CALLBACK (*PTHREAD_START_ROUTINE) (LPVOID);
  452. typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
  453. typedef DWORD CALLBACK (*EDITSTREAMCALLBACK) (DWORD, LPBYTE, LONG, LONG);
  454. typedef UINT CALLBACK (*LPFRHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  455. typedef UINT CALLBACK (*LPOFNHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  456. typedef UINT CALLBACK (*LPPRINTHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  457. typedef UINT CALLBACK (*LPSETUPHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  458. typedef WINBOOL CALLBACK (*DLGPROC) (HWND, UINT, WPARAM, LPARAM);
  459. typedef int CALLBACK (*PFNPROPSHEETCALLBACK) (HWND, UINT, LPARAM);
  460. typedef VOID CALLBACK (*LPSERVICE_MAIN_FUNCTION) (DWORD, LPTSTR);
  461. typedef int CALLBACK (*PFNTVCOMPARE) (LPARAM, LPARAM, LPARAM);
  462. typedef LRESULT CALLBACK (*WNDPROC) (HWND, UINT, WPARAM, LPARAM);
  463. typedef int CALLBACK (*FARPROC)();
  464. typedef FARPROC PROC;
  465. typedef WINBOOL CALLBACK (*ENUMRESTYPEPROC) (HANDLE, LPTSTR, LONG);
  466. typedef WINBOOL CALLBACK (*ENUMRESNAMEPROC) (HANDLE, LPCTSTR, LPTSTR, LONG);
  467. typedef WINBOOL CALLBACK (*ENUMRESLANGPROC) (HANDLE, LPCTSTR, LPCTSTR, WORD, LONG);
  468. typedef FARPROC DESKTOPENUMPROC;
  469. typedef WINBOOL CALLBACK (*ENUMWINDOWSPROC) (HWND, LPARAM);
  470. typedef WINBOOL CALLBACK (*ENUMWINDOWSTATIONPROC) (LPTSTR, LPARAM);
  471. typedef VOID CALLBACK (*SENDASYNCPROC) (HWND, UINT, DWORD, LRESULT);
  472. typedef VOID CALLBACK (*TIMERPROC) (HWND, UINT, UINT, DWORD);
  473. typedef FARPROC GRAYSTRINGPROC;
  474. typedef WINBOOL CALLBACK (*DRAWSTATEPROC) (HDC, LPARAM, WPARAM, int, int);
  475. typedef WINBOOL CALLBACK (*PROPENUMPROCEX) (HWND, LPCTSTR, HANDLE, DWORD);
  476. typedef WINBOOL CALLBACK (*PROPENUMPROC) (HWND, LPCTSTR, HANDLE);
  477. typedef LRESULT CALLBACK (*HOOKPROC) (int, WPARAM, LPARAM);
  478. typedef VOID CALLBACK (*ENUMOBJECTSPROC) (LPVOID, LPARAM);
  479. typedef VOID CALLBACK (*LINEDDAPROC) (int, int, LPARAM);
  480. typedef WINBOOL CALLBACK (*ABORTPROC) (HDC, int);
  481. typedef UINT CALLBACK (*LPPAGEPAINTHOOK) (HWND, UINT, WPARAM, LPARAM );
  482. typedef UINT CALLBACK (*LPPAGESETUPHOOK) (HWND, UINT, WPARAM, LPARAM );
  483. typedef int CALLBACK (*ICMENUMPROC) (LPTSTR, LPARAM);
  484. typedef LONG (*EDITWORDBREAKPROCEX) (char *, LONG, BYTE, INT);
  485. typedef int CALLBACK (*PFNLVCOMPARE) (LPARAM, LPARAM, LPARAM);
  486. typedef WINBOOL CALLBACK (*LOCALE_ENUMPROC) (LPTSTR);
  487. typedef WINBOOL CALLBACK (*CODEPAGE_ENUMPROC) (LPTSTR);
  488. typedef WINBOOL CALLBACK (*DATEFMT_ENUMPROC) (LPTSTR);
  489. typedef WINBOOL CALLBACK (*TIMEFMT_ENUMPROC) (LPTSTR);
  490. typedef WINBOOL CALLBACK (*CALINFO_ENUMPROC) (LPTSTR);
  491. typedef WINBOOL CALLBACK (*PHANDLER_ROUTINE) (DWORD);
  492. typedef WINBOOL CALLBACK (*LPHANDLER_FUNCTION) (DWORD);
  493. typedef UINT CALLBACK (*PFNGETPROFILEPATH) (LPCTSTR, LPSTR, UINT);
  494. typedef UINT CALLBACK (*PFNRECONCILEPROFILE) (LPCTSTR, LPCTSTR, DWORD);
  495. typedef WINBOOL CALLBACK (*PFNPROCESSPOLICIES) (HWND, LPCTSTR, LPCTSTR, LPCTSTR, DWORD);
  496.  
  497. #define SECURITY_NULL_SID_AUTHORITY     {0,0,0,0,0,0}
  498. #define SECURITY_WORLD_SID_AUTHORITY    {0,0,0,0,0,1}
  499. #define SECURITY_LOCAL_SID_AUTHORITY    {0,0,0,0,0,2}
  500. #define SECURITY_CREATOR_SID_AUTHORITY  {0,0,0,0,0,3}
  501. #define SECURITY_NON_UNIQUE_AUTHORITY   {0,0,0,0,0,4}
  502. #define SECURITY_NT_AUTHORITY           {0,0,0,0,0,5}
  503.  
  504. #define SE_CREATE_TOKEN_NAME              TEXT("SeCreateTokenPrivilege")
  505. #define SE_ASSIGNPRIMARYTOKEN_NAME        TEXT("SeAssignPrimaryTokenPrivilege")
  506. #define SE_LOCK_MEMORY_NAME               TEXT("SeLockMemoryPrivilege")
  507. #define SE_INCREASE_QUOTA_NAME            TEXT("SeIncreaseQuotaPrivilege")
  508. #define SE_UNSOLICITED_INPUT_NAME         TEXT("SeUnsolicitedInputPrivilege")
  509. #define SE_MACHINE_ACCOUNT_NAME           TEXT("SeMachineAccountPrivilege")
  510. #define SE_TCB_NAME                       TEXT("SeTcbPrivilege")
  511. #define SE_SECURITY_NAME                  TEXT("SeSecurityPrivilege")
  512. #define SE_TAKE_OWNERSHIP_NAME            TEXT("SeTakeOwnershipPrivilege")
  513. #define SE_LOAD_DRIVER_NAME               TEXT("SeLoadDriverPrivilege")
  514. #define SE_SYSTEM_PROFILE_NAME            TEXT("SeSystemProfilePrivilege")
  515. #define SE_SYSTEMTIME_NAME                TEXT("SeSystemtimePrivilege")
  516. #define SE_PROF_SINGLE_PROCESS_NAME       TEXT("SeProfileSingleProcessPrivilege")
  517. #define SE_INC_BASE_PRIORITY_NAME         TEXT("SeIncreaseBasePriorityPrivilege")
  518. #define SE_CREATE_PAGEFILE_NAME           TEXT("SeCreatePagefilePrivilege")
  519. #define SE_CREATE_PERMANENT_NAME          TEXT("SeCreatePermanentPrivilege")
  520. #define SE_BACKUP_NAME                    TEXT("SeBackupPrivilege")
  521. #define SE_RESTORE_NAME                   TEXT("SeRestorePrivilege")
  522. #define SE_SHUTDOWN_NAME                  TEXT("SeShutdownPrivilege")
  523. #define SE_DEBUG_NAME                     TEXT("SeDebugPrivilege")
  524. #define SE_AUDIT_NAME                     TEXT("SeAuditPrivilege")
  525. #define SE_SYSTEM_ENVIRONMENT_NAME        TEXT("SeSystemEnvironmentPrivilege")
  526. #define SE_CHANGE_NOTIFY_NAME             TEXT("SeChangeNotifyPrivilege")
  527. #define SE_REMOTE_SHUTDOWN_NAME           TEXT("SeRemoteShutdownPrivilege")
  528.  
  529. #define SERVICES_ACTIVE_DATABASEW      L"ServicesActive"
  530. #define SERVICES_FAILED_DATABASEW      L"ServicesFailed"
  531. #define SERVICES_ACTIVE_DATABASEA      "ServicesActive"
  532. #define SERVICES_FAILED_DATABASEA      "ServicesFailed"
  533. #define SC_GROUP_IDENTIFIERW           L'+'
  534. #define SC_GROUP_IDENTIFIERA           '+'
  535.  
  536. #ifdef UNICODE
  537. #define SERVICES_ACTIVE_DATABASE       SERVICES_ACTIVE_DATABASEW
  538. #define SERVICES_FAILED_DATABASE       SERVICES_FAILED_DATABASEW
  539. #define SC_GROUP_IDENTIFIER            SC_GROUP_IDENTIFIERW
  540. #else 
  541. #define SERVICES_ACTIVE_DATABASE       SERVICES_ACTIVE_DATABASEA
  542. #define SERVICES_FAILED_DATABASE       SERVICES_FAILED_DATABASEA
  543. #define SC_GROUP_IDENTIFIER            SC_GROUP_IDENTIFIERA
  544. #endif /* UNICODE */
  545.  
  546. /* ---------------------------------- */
  547. /* From ddeml.h in old Cygnus headers */
  548.  
  549. typedef void (*CALLB) ();
  550. typedef CALLB PFNCALLBACK;
  551.  
  552. typedef WINBOOL SECURITY_CONTEXT_TRACKING_MODE;
  553.  
  554. /* End of stuff from ddeml.h in old Cygnus headers */
  555. /* ----------------------------------------------- */
  556.  
  557. typedef FARPROC WNDENUMPROC;
  558. typedef FARPROC ENHMFENUMPROC;
  559. typedef DWORD CCSTYLE, *PCCSTYLE, *LPCCSTYLE;
  560. typedef DWORD CCSTYLEFLAGA, *PCCSTYLEFLAGA, *LPCCSTYLEFLAGA;
  561. #define DECLARE_HANDLE(s) typedef HANDLE s
  562.  
  563. #ifdef __cplusplus
  564. }
  565. #endif /* __cplusplus */
  566.  
  567. #endif /* _GNU_H_WINDOWS32_BASE */
  568.